﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Admin.NET.Application
{
    public interface IPlanService
    {
        /// <summary>
        /// 添加巡检计划
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> PostPlan(PlanInfoDto plan);
        /// <summary>
        /// 巡检车 添加巡检计划
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> PostCarPlan(PlanInfoDto plan);


        /// <summary>
        /// 修改巡检计划
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> PostPlanEdit(PlanInfoDto plan);
        /// <summary>
        /// 巡检车 修改巡检计划
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> PostCarPlanEdit(PlanInfoDto plan);


        /// <summary>
        /// 添加或修改巡检计划
        /// </summary>
        /// <param name="plan"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> PostPlanAddorEdit(PlanInfoDto plan);

        /// <summary>
        /// 删除巡检计划
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> GetPlanDel(long planId);
        /// <summary>
        /// 获取计划列表
        /// </summary>
        /// <param name="CarId"></param>
        /// <param name="PlanDt"></param>
        /// <returns></returns>
        Task<object> GetPlanList(long CarId, string PlanDt);


        /// <summary>
        /// 获取所有计划列表
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> GetPlanListAll();
        /// <summary>
        /// 获取未巡检计划列表
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> GetIsCarryPlanList();

        /// <summary>
        /// 获取计划日期列表
        /// </summary>
        /// <param name="CarId"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> GetPlanDateList(long CarId);
        /// <summary>
        /// 获取计划巡检GPS信息
        /// </summary>
        /// <param name="PlanId"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        Task<object> GetPlanGPSInfo(long PlanId);
    }
}
